package com.doubao.user.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.doubao.user.entity.UserApiKey;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

/**
 * 用户API密钥Mapper接口
 */
@Mapper
public interface UserApiKeyMapper extends BaseMapper<UserApiKey> {

    /**
     * 更新API密钥激活状态
     *
     * @param id       API密钥ID
     * @param isActive 是否激活
     * @return 影响行数
     */
    int updateActiveStatus(@Param("id") Long id, @Param("isActive") Integer isActive);

    /**
     * 增加已用配额
     *
     * @param id    API密钥ID
     * @param quota 配额数量
     * @return 影响行数
     */
    int increaseQuotaUsed(@Param("id") Long id, @Param("quota") Long quota);

    /**
     * 重置已用配额
     *
     * @param id API密钥ID
     * @return 影响行数
     */
    int resetQuotaUsed(@Param("id") Long id);

    /**
     * 更新配额限制
     *
     * @param id         API密钥ID
     * @param quotaLimit 配额限制
     * @return 影响行数
     */
    int updateQuotaLimit(@Param("id") Long id, @Param("quotaLimit") Long quotaLimit);
}